package com.aliyun.messagemgt.repository.mappers;

import com.aliyun.messagemgt.dto.MessageTemplate;
import com.aliyun.messagemgt.dto.MessageTemplateParam;
import com.aliyun.messagemgt.dto.query.MessageTemplateQuery;
import com.aliyun.messagemgt.entities.MessageTemplateEntity;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author byp
 * @date 2020/8/10
 */
@Repository
public interface MessageTemplateMapper {

    /**
     * 修改消息模板
     *
     * @param messageTemplate 消息模板
     * @return Integer
     */
    Integer update(MessageTemplateEntity messageTemplate);

    /**
     * 分页查询消息模板列表
     *
     * @param query 消息模板查询条件
     * @return page
     */
    List<MessageTemplateEntity> queryList(MessageTemplateEntity query);

    List<MessageTemplateEntity> queryListSign(MessageTemplateEntity query);

    /**
     * 查询消息模板数量
     *
     * @return Integer
     */
    Long listCount();

    /**
     * 通过模板名称查询模板
     *
     * @param messageTemplate 模板名称
     * @return MessageTemplate
     */
    int queryByTemplateName(MessageTemplate messageTemplate);

    /**
     * 通过实体类查询消息模板
     *
     * @param messageTemplate 查询实体类
     * @return 消息模板
     */
    MessageTemplateEntity queryByEntity(MessageTemplateEntity messageTemplate);

    MessageTemplateEntity queryByEntitySign(MessageTemplateEntity messageTemplate);

    /**
     * 启停用服务
     * @param messageTemplate
     * @return
     */
    Integer updateStatus(MessageTemplateEntity messageTemplate);

    /**
     * 保存
     * @param messageTemplateEntity
     * @return
     */
    Integer saveTemplate(MessageTemplateEntity messageTemplateEntity);

    /**
     * 逻辑删除
     * @param templateParam
     * @return
     */
    Integer isDelete(MessageTemplate templateParam);

    /**
     * 通过编码查询
     * @param messageTemplate
     * @return
     */
    MessageTemplateEntity queryByTemplateCode(MessageTemplate messageTemplate);

    /**
     * 通过id查询
     * @param templateId
     * @return
     */
    MessageTemplateEntity queryByTemplateId(Long templateId);

    /**
     * 查询启用消息列表
     * @param templateEntity
     * @return
     */
    List<MessageTemplateEntity> isEnabledList(MessageTemplateEntity templateEntity);

    /**
     * 通过标题查询模板
     * @param messageTemplate
     * @return
     */
    int queryByTemplateTitle(MessageTemplate messageTemplate);

    /**
     * 通过编码查询
     * @param messageTemplate
     * @return
     */
    int queryByCode(MessageTemplate messageTemplate);

}
